This invention relates generally to computer graphics, and more particularly to the use of a computer to perform various color processing operations, such as contrast adjustment, anti-aliasing, etc., on a color object.
The unambiguous representation and accurate reproduction of a color image is a rather complex and often difficult subject matter. Historically, various color processing and reproduction techniques have been developed and used in several somewhat related but largely independent industries, such as movie filming, television, photography, and printing. Each of these industries deals with a different set of constraints and conditions relating to the physical devices or media used to capture or reproduce the color images, such as a TV camera, a color film, or a color printer. As a result, many different color spaces have been developed to model and describe the colors of images in different applications. Some of the commonly used color spaces are defined by adopted industrial standards, such as the CIEXYZ and CIELAB color spaces by the Commission Internationale de l""Eclairage (CIE). Other color spaces, however, are often ad hoc and/or proprietary models used by different companies and sometimes particular to a given product, such as a digital camera or a printer.
Despite the plethora of color spaces in research and on the market today, they can largely be categorized into two fundamental groups: perceptual-based and physical-based. Perceptual-based color spaces are based on the human visual system, i.e., how people xe2x80x9cperceivexe2x80x9d colors. The advantage and usefulness of perceptual-based color spaces is in representing colors in a way closely linked to human perception of colors. Example of perceptual color spaces include the standard CIELAB, CIELUV, and CIECAM spaces, the sRGB space proposed by Microsoft Corporation and Hewlett Packard Corporation, most CMYK spaces, film density, and many others.
In contrast, physical-based color spaces are based on the physics of mixing light and photons. The advantage and usefulness of physical-based color spaces is in representing colors in a way closely linked to the physical interaction of color to facilitate rendering and certain color effects such a alpha-blending and anti-aliasing. Examples of physical-based color spaces include the CIEXYZ space, the sRGB64 space proposed by Microsoft Corporation, and various spectral reflection and transmission spaces.
Computers have long been used for processing color images for various editing operations for general color corrections and adding special effects. As the average processing power of home computers has increased tremendously over the last decade or so, computer graphics software applications with significantly improved color processing features have become increasingly popular. For instance, a user may use a digital camera to capture a digital color picture, edit the picture by performing compositing, morphing, or various other computer graphics operations involving color processing, and display or print out the edited color picture. Because of the different color spaces existing and in use today, the image input and output devices and the color processing software on the computer may all use different color spaces.
Conventionally, each color processing software application has its own selected working color space in which all graphics operations are performed. When a color object is imported into the color processing application, a conversion may have to be carried out to convert the input graphics data from the color space used by the input device, which for example may be an RGB color space, into the internal working space of the processing application. The internal working space may be either a perceptual-based color space or a physical-based color space or in some cases a proprietary color space not disclosed to the public. After the color operations are performed, the rendered color image may have to be converted into a color space supported by a target output device, such as a computer CRT monitor or a color printer.
Regardless of which color space is selected for use as the internal working color space for color processing, there is always some tradeoff of the performance of the software and the quality of the processed color image. For instance, while a perceptual-based color space is a natural choice for performing perceptual-based processing functions such as contrast adjustment, it is often difficult to properly perform many physical-based operations such as anti-aliasing and alpha-blending in the perceptual-based color space. Thus, conventional color-processing software products often are incapable of providing satisfactory color-processing quality. The existence of a large number of possible input and output color spaces only makes the matter more complicated.
In view of the foregoing, the present invention provides a system and method for processing color objects that supports both a perceptual-based color space and a physical-based color space and utilizes the two color spaces in an integrated way to optimize the quality of the color-processing. The graphics engine of the system includes a module for converting a color object from the perceptual-base color space to the physical-based color space and from the physical-based color space to the perceptual-based color space. During a graphic processing process, which may involve various perceptual-based and physical-based operations, the graphics engine automatically converts the color object being processed from one color space to the other depending on the type of color operations to be performed. For instance, if the color object is in the perceptual-based color space and the next operation is a physical-based operation, the graphics engine uses the conversion module to automatically convert the color object into the physical-based color space and then applies the physical-based operation. Subsequently, the color object may be converted back to the perceptual-based color space when a perceptual-based color processing operation is to be performed. In this way, optimal quality of the processed color object and performance of the processing system may be achieved in an integrated manner that is transparent to the end user. Input and output color conversions may be performed to interface with input and output devices that use different color spaces.
Additional features and advantages of the invention will be made apparent from the following detailed description of illustrative embodiments, which proceeds with reference to the accompanying figures.